////package com.example.papercutting.utils;
////
////import android.content.Context;
////import android.content.SharedPreferences;
////
////import com.example.papercutting.common.Item;
////import com.google.gson.Gson;
////import com.google.gson.reflect.TypeToken;
////
////import java.lang.reflect.Type;
////
////import android.content.Context;
////import android.content.SharedPreferences;
////import com.google.gson.Gson;
////import com.google.gson.reflect.TypeToken;
////import java.lang.reflect.Type;
////import java.util.ArrayList;
////import java.util.List;
////
////import android.content.Context;
////import android.content.SharedPreferences;
////import com.google.gson.Gson;
////import com.google.gson.reflect.TypeToken;
////
////import java.lang.reflect.Type;
////import java.util.ArrayList;
////import java.util.List;
////
////public class PreferencesHelper {
////
////    private static final String PREFS_NAME = "MyPrefs";
////    private static final String KEY_ITEM_ARRAY = "itemArray";
////
////    private static PreferencesHelper instance; // 单例实例
////
////    private SharedPreferences sharedPreferences;
////    private Gson gson;
////    private List<Item> itemList;
////
////    // 私有构造函数
////    private PreferencesHelper(Context context) {
////        sharedPreferences = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
////        gson = new Gson();
////        itemList = loadItemArray(); // 加载已保存的 Item 列表
////    }
////
////    // 获取单例实例
////    public static synchronized PreferencesHelper getInstance(Context context) {
////        if (instance == null) {
////            instance = new PreferencesHelper(context.getApplicationContext());
////        }
////        return instance;
////    }
////
////    // 保存单个 Item 对象到内部列表
////    public void addItem(Item item) {
////        itemList.add(item); // 将新 Item 添加到列表
////        saveItemArray(); // 每次添加后保存到 SharedPreferences
////    }
////
////    // 将当前的 itemList 保存到 SharedPreferences
////    private void saveItemArray() {
////        String json = gson.toJson(itemList); // 将列表转为 JSON 字符串
////        sharedPreferences.edit().putString(KEY_ITEM_ARRAY, json).apply();
////    }
////
////    // 从 SharedPreferences 加载 Item 数组
////    private List<Item> loadItemArray() {
////        String json = sharedPreferences.getString(KEY_ITEM_ARRAY, null);
////        if (json != null) {
////            Type type = new TypeToken<List<Item>>() {}.getType();
////            return gson.fromJson(json, type); // 从 JSON 字符串恢复列表
////        }
////        return new ArrayList<>(); // 如果没有数据，返回空列表
////    }
////
////    // 获取当前的 Item 数组
////    public Item[] getItemArray() {
////        return itemList.toArray(new Item[0]); // 返回数组
////    }
////
////    // 清除所有保存的 Item
////    public void clearItems() {
////        itemList.clear(); // 清空内部列表
////        sharedPreferences.edit().remove(KEY_ITEM_ARRAY).apply(); // 清除 SharedPreferences 中的相关数据
////    }
////}
//
//package com.example.papercutting.utils;
//
//import android.content.Context;
//import android.content.SharedPreferences;
//import android.graphics.Bitmap;
//import android.graphics.BitmapFactory;
//
//import com.example.papercutting.common.Item;
//import com.google.gson.Gson;
//import com.google.gson.reflect.TypeToken;
//
//import java.io.ByteArrayOutputStream;
//import java.lang.reflect.Type;
//import java.util.ArrayList;
//import java.util.List;
//
//public class PreferencesHelper {
//
//    private static final String PREFS_NAME = "MyPrefs";
//    private static final String KEY_ITEM_ARRAY = "itemArray";
//
//    private static PreferencesHelper instance; // 单例实例
//
//    private SharedPreferences sharedPreferences;
//    private Gson gson;
//    private List<Item> itemList; // 存储 Item 的列表
//
//    // 私有构造函数
//    private PreferencesHelper(Context context) {
//        sharedPreferences = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
//        gson = new Gson();
//        itemList = loadItemArray(); // 加载已保存的 Item 列表
//    }
//
//    // 获取单例实例
//    public static synchronized PreferencesHelper getInstance(Context context) {
//        if (instance == null) {
//            instance = new PreferencesHelper(context.getApplicationContext());
//        }
//        return instance;
//    }
//
//    // 保存单个 Item 对象到内部列表
//    public void addItem(Item item) {
//        itemList.add(item); // 将新 Item 添加到列表
//        saveItemArray(); // 每次添加后保存到 SharedPreferences
//    }
//
//    // 将当前的 itemList 保存到 SharedPreferences
//    private void saveItemArray() {
//        List<String> itemStringList = new ArrayList<>();
//        for (Item item : itemList) {
//            itemStringList.add(itemToJson(item)); // 转换 Item 为 JSON 字符串
//        }
//        String json = gson.toJson(itemStringList); // 将列表转为 JSON 字符串
//        sharedPreferences.edit().putString(KEY_ITEM_ARRAY, json).apply();
//    }
//
//    // 从 SharedPreferences 加载 Item 数组
//    private List<Item> loadItemArray() {
//        String json = sharedPreferences.getString(KEY_ITEM_ARRAY, null);
//        if (json != null) {
//            Type type = new TypeToken<List<String>>() {}.getType();
//            List<String> itemStringList = gson.fromJson(json, type);
//            List<Item> items = new ArrayList<>();
//            for (String itemString : itemStringList) {
//                items.add(jsonToItem(itemString)); // 从 JSON 字符串恢复 Item
//            }
//            return items;
//        }
//        return new ArrayList<>(); // 如果没有数据，返回空列表
//    }
//
//    // 获取当前的 Item 数组
//    public List<Item> getItemArray() {
//        return itemList; // 返回数组
//    }
//
//    // 清除所有保存的 Item
//    public void clearItems() {
//        itemList.clear(); // 清空内部列表
//        sharedPreferences.edit().remove(KEY_ITEM_ARRAY).apply(); // 清除 SharedPreferences 中的相关数据
//    }
//
//    // 将 Item 转换为 JSON 字符串
//    private String itemToJson(Item item) {
//        String bitmapString = bitmapToBase64(item.getBitmap()); // 转换 Bitmap 为 Base64 字符串
//        return gson.toJson(new ItemData(bitmapString, item.getCurrentTime(), item.getName()));
//    }
//
//    // 从 JSON 字符串恢复 Item
//    private Item jsonToItem(String jsonString) {
//        ItemData itemData = gson.fromJson(jsonString, ItemData.class);
//        Bitmap bitmap = base64ToBitmap(itemData.bitmapString);
//        return new Item(bitmap, itemData.currentTime, itemData.name);
//    }
//
//    // Bitmap 转 Base64 字符串
//    private String bitmapToBase64(Bitmap bitmap) {
//        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
//        bitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream);
//        byte[] byteArray = byteArrayOutputStream.toByteArray();
//        return android.util.Base64.encodeToString(byteArray, android.util.Base64.DEFAULT);
//    }
//
//    // Base64 字符串转 Bitmap
//    private Bitmap base64ToBitmap(String base64String) {
//        byte[] decodedBytes = android.util.Base64.decode(base64String, android.util.Base64.DEFAULT);
//        return BitmapFactory.decodeByteArray(decodedBytes, 0, decodedBytes.length);
//    }
//
//    // 辅助类，用于存储 Item 的 JSON 数据
//    private class ItemData {
//        String bitmapString;
//        String currentTime;
//        String name;
//
//        ItemData(String bitmapString, String currentTime, String name) {
//            this.bitmapString = bitmapString;
//            this.currentTime = currentTime;
//            this.name = name;
//        }
//    }
//}